
class 人物:  #棋子
    def __init__(self, 名称, 形状, 坐标):
        self.名称=名称              # 曹操，马超等
        self.形状=形状 # 小正方形5 大正方形4 横长方形2 竖长方形3
        self.坐标=坐标 #棋子在棋盘的位置，以左上角位置代表整个棋子位置
        self.可走方向=[0,0,0,0]    #记录棋子可能的移动方向
        self.可动=False

马超=人物("马超",3,[0,0])
曹操=人物("曹操",4,[2,2])
黄忠=人物("黄忠",3,[0,1])
关羽=人物("关羽",2,[4,0])
卒1=人物("卒1",5,[0,2])
张飞=人物("张飞",3,[2,0])
赵云=人物("赵云",3,[2,1])
卒2=人物("卒2",5,[0,3])
卒3=人物("卒3",5,[1,2])
卒4=人物("卒4",5,[1,3])

# 1 为边界线
场地初始状态 = [[1,1,1,1,1,1],
                [1,0,0,0,0,1],
                [1,0,0,0,0,1],
                [1,0,0,0,0,1],
                [1,0,0,0,0,1],
                [1,0,0,0,0,1],
                [1,1,1,1,1,1]]

已产生棋局的位示图=set()

def 双层列表转tuple(列表):
    return tuple(tuple(sub) for sub in 列表)

def 记录形势(战场):
    已产生棋局的位示图.add(双层列表转tuple(战场))

def 已见形势(战场):
    return 双层列表转tuple(战场) in 已产生棋局的位示图
